iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
Google Developers Machine Learning

ML Study Jam -機器學習系列 第 22

Day 22 Feature Crosses part 1(特徵組合)

  • 分享至 

  • xImage
  •  

Feature Enginnering

Feature Crosses part 1

甚麼是Feature Crosses?

大家看到這裡一定又一個頭兩個大了,這到底是甚麼東西
我想我們直接用一些例子來做解釋會比較好理解
大家可以看到下面兩張圖,如果希望把下列兩張圖利用你知道的方式來做分類你會怎麼做呢??

https://ithelp.ithome.com.tw/upload/images/20190923/20120289o3MA5pXXef.pnghttps://ithelp.ithome.com.tw/upload/images/20190923/20120289qSunnonQ2X.png
首先第一張圖非常的簡單我們只要用一條直線就可以把兩個群體分開了
https://ithelp.ithome.com.tw/upload/images/20190923/20120289fDFqLdRK9B.png

第二張圖就有點麻煩了,我們需要一些跟之前不一樣的想法

  1. 我們可以把這張圖中間畫一個十字然後中心點設為原點,那這個圖形是不是非常熟悉,非常像數學所學的象限圖,依照象限的特性,我們會知道第一象限、第三象限永遠為正,所以因為這樣的特性我們必須要將兩點座標進行相乘的動作,已得到我們的結果。

https://ithelp.ithome.com.tw/upload/images/20190923/20120289zSFsAylMz9.png

  1. 另外一個想法是將原點放置於左下角,如果我們講兩個特徵一樣做相乘的動作,也就是https://chart.googleapis.com/chart?cht=tx&chl=x3%20%3D%20x1%20*%20x2,那我們又可以看到一個很好的特徵,x3的部分不適極大就是極小值,所以我們只要去設定他的範圍那不就可以很容易的把他們分開了。

https://ithelp.ithome.com.tw/upload/images/20190923/201202892d6XEPdMkR.pnghttps://ithelp.ithome.com.tw/upload/images/20190923/201202896lk4nvrjfP.png

上述這兩個想法這也就是我們所謂的Feature Crosses,要將兩個特徵做交叉的動作可以得到得好的結果,更快並且更好的進行分類。

tensorflow playground 驗證

根據上面講了那的多的理論基礎,今天我們可以利用tensorflow playground來做驗證

  • 我們直接來看數據分布在四周的樣本
    首先我們先用X1、X2兩個特徵作為分類的依據,可以發現完全分不出來,但加入了X1 * X2依照前面的理論基礎,我們可以看到在同樣的時間點加入X1 * X2的特徵能夠達到分類更好的結果。
    https://ithelp.ithome.com.tw/upload/images/20190923/20120289TsBPqKlOK5.pnghttps://ithelp.ithome.com.tw/upload/images/20190923/201202896fejS5ftqx.png

  • 接著舉另一個分類的問題,中間是一種類別外圍是一種類別,一樣先只以X1、X2做特徵,也會發現對於這個模型沒有辦法將資料分開,但我們加入https://chart.googleapis.com/chart?cht=tx&chl=X1%5E2https://chart.googleapis.com/chart?cht=tx&chl=X2%5E2,會發現因為平方的關係中間的值會比較小、外圍的值會比較大,所以也可以用此證明https://chart.googleapis.com/chart?cht=tx&chl=X1%5E2https://chart.googleapis.com/chart?cht=tx&chl=X2%5E2是有助於分類的判斷。
    https://ithelp.ithome.com.tw/upload/images/20190923/20120289a6ihd3MsTo.pnghttps://ithelp.ithome.com.tw/upload/images/20190923/20120289YRJgzAyDhq.png

  • 另外有個問題就是加入太多的特徵會導致可能訓練過程拉比較長
    像是簡單的數據集特徵只需要兩個,但如果加入更多的特徵會模糊化原本比較好的特徵
    依照下圖這個這個最簡單的分類問題同樣讓它跑100個Epoch,我們可以看到雖然最終能夠達到分類的效果
    但在中途訓練時間會有所差異,所以在我們選擇特徵的時候還是要依照數據集的特性來進行特徵的選擇。
    https://ithelp.ithome.com.tw/upload/images/20190923/20120289BJWyo6EQwT.pnghttps://ithelp.ithome.com.tw/upload/images/20190923/20120289Ak61Uu6TkW.png

※圖片參考至 Feature Engineering resource


上一篇
Day 21 Preprocessing and Feature Creation part 2 (實作資料預處理)
下一篇
Day 23 Feature Crosses part 2 (特徵組合 on GCP)
系列文
ML Study Jam -機器學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言